System and method for a keypad on a touch screen device

ABSTRACT

What is disclosed is a system for randomization of one or more display parameters for a keypad displayed on a touchscreen of a mobile device, said system comprising a randomization subsystem to randomly select one or more variables related to at least one of said one or more display parameters, said one or more display parameters comprising a location of the keypad relative to said edge of said touchscreen; a size of said keypad; one or more sizes of one or more buttons within said keypad, and one or more positions of one or more groups of the one or more buttons within said keypad.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims benefit of U.S. Provisional Application No. 62/576,401, filed Oct. 24, 2017, entitled SYSTEM AND METHOD FOR A KEYPAD ON A TOUCH SCREEN DEVICE (Atty. Dkt. No. BBPS60-33844), the specification of which is incorporated by reference herein in its entirety.

TECHNICAL FIELD

The present disclosure is related to keypads for mobile devices.

BACKGROUND

Touch and swipe-based key input functionalities are commonly used in devices with touchscreens. This includes, for example, the keyboards and keypads used in devices with touchscreens such as smartphones, tablets and laptops.

One of most important uses of these functionalities is the authentication of the user and verification of the identity using a numeric passcode or password. In many systems, the authentication is performed using a 4 to 12 digit numeric passcode or password called a Personal Identification Number (PIN).

For payment and other banking cards, the Personal Identification Number (PIN) is the most sensitive piece of information used for authentication. There are Payment Card Industry (PCI) regulations or other industrial standards that govern how the PIN should be handled by a terminal that accepts a PIN. In the past, PINs were entered by specially designed PIN-entry devices (PEDs). These PIN entry devices are tamper-resistant, and because of the stringent security requirements, are usually very expensive.

Accepting PIN entry by using software running on mobile devices and by using the keys or touchscreens on the mobile devices are inherently insecure because of malwares, Trojan horses or hacked operating systems. It is possible for keyloggers and screen capturers to capture the user input and then send it to hackers and attackers. Illegal capture of input data can be achieved by monitoring the coordinates of user interactions with the touchscreen of the device either electrically or through software means.

Another possible technique is via “smudge attacks”, that is, systems where the attackers capture user input via observation of smudge patterns on the touchscreen of a mobile device. Smudge attacks rely on detecting the oily smudges left behind by the user's fingers when interacting with the touchscreen of the device using simple cameras and image processing software. Under proper lighting and camera settings, the finger smudges can be easily detected, and the heaviest smudges can be used to infer PINs. Such techniques can be highly effective as explained in, for example, Aviv, Adam J.; Gibson, Katherine; Mossop, Evan; Blaze, Matt; Smith, Jonathan M. Smudge Attacks on Smartphone Touchscreens (PDF). 4th USENIX Workshop on Offensive Technologies (WOOT), 10, pp. 1-7.

One of the challenges in the design of a mobile device with a touchscreen is determining how to allow a mobile phone to accept a PIN securely. Therefore, there is a need for a system and a method for secure and yet convenient PIN entry.

Some implementations have been proposed to try to tackle this issue. For example, some EFTPOS terminals have implemented keypads for entry of Personal Identification Numbers (PINs) with randomized button layout. Examples are provided in, for example US Patent Application Publication Number 2014/0164782 to Lo et al, filed Dec. 9, 2013 and published on Jun. 12, 2014. These systems do increase the difficulty of guessing the user pressed buttons solely from monitoring the coordinates of touchscreen input. This technique therefore can effectively prevent hackers, attackers and keyloggers obtaining a user input such as a PIN from a touch panel using, for example, keystroke capturers.

However, randomized PIN keypads which completely alter the locations of buttons relative to one another can cause difficulty of usage for some card holders, and involves a steep learning curve for most users.

Therefore, there is a need for randomization of keypad display parameters where at least some of the positional relationships are maintained.

SUMMARY

A system for randomization of one or more display parameters for a keypad displayed on a touchscreen of a mobile device, said system comprising a randomization subsystem to randomly select one or more variables related to at least one of said one or more display parameters, said one or more display parameters comprising a location of the keypad relative to said edge of said touchscreen, a size of said keypad, one or more sizes of one or more buttons within said keypad, and one or more positions of one or more groups of the one or more buttons within said keypad.

A method for randomization of one or more display parameters for a keypad displayed on a touchscreen of a mobile device, said method comprising randomly selecting one or more variables related to at least one of said one or more display parameters, said one or more display parameters comprising a location of the keypad relative to said edge of said touchscreen, a size of said keypad, one or more sizes of one or more buttons within said keypad, and one or more positions of one or more groups of the one or more buttons within said keypad.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding, reference is now made to the following description taken in conjunction with the accompanying Drawings in which:

FIG. 1 illustrates an example embodiment of a mobile device;

FIG. 2 illustrates a keypad displayed within a touchscreen of a mobile device;

FIG. 3A illustrates a detailed description of a keypad;

FIG. 3B illustrates a flowchart for randomly selecting button widths while button heights remain fixed;

FIG. 3C illustrates a flowchart for randomly selecting button heights while button widths remain fixed;

FIG. 3D illustrates a flowchart for randomly selecting button heights and button widths in series;

FIG. 3E illustrates a flowchart for randomly selecting button heights and button widths in parallel;

FIG. 4 illustrates a starting position for a keypad;

FIG. 5 illustrates an example of rolling up the rows of the keypad;

FIG. 6 illustrates an example of flipping the columns of the keypad;

FIG. 7A illustrates an example of horizontal mirroring;

FIG. 7B illustrates an example of vertical mirroring;

FIG. 8 illustrates an example of a random selection of a combination of two or more display parameters; and

FIG. 9 illustrates an example of a sequence of random selections of a combination of display parameters are implemented.

DETAILED DESCRIPTION

Referring now to the drawings, wherein like reference numbers are used herein to designate like elements throughout, the various views and embodiments of system and method for a keypad on a touchscreen device are illustrated and described, and other possible embodiments are described. The figures are not necessarily drawn to scale, and in some instances the drawings have been exaggerated and/or simplified in places for illustrative purposes only. One of ordinary skill in the art will appreciate the many possible applications and variations based on the following examples of possible embodiments.

A system and method to implement randomization of keypad display parameters while maintaining at least some of the positional relationships between buttons are described below. This serves to increase the difficulty faced by an attacker in obtaining user inputs such as PINs from a touch panel, while reducing some of the difficulties faced by users in utilizing a keypad with randomized button layout. These parameters can be randomized either individually, or in combination.

Examples of display parameters which may be randomly selected include:

-   -   Location of the keypad relative to a corner,     -   Size of the keypad,     -   Size of the buttons, and     -   Positions of groups of buttons.

For each of these display parameters, there are one or more related variables which are randomly selected. Detailed examples are provided below.

FIG. 1 shows a mobile device 101. This is, for example, a smartphone or a tablet. Mobile device 101 has processor 103, display processor 105, randomization subsystem 107, touchscreen 109, storage 111 and communications module 113. These components of mobile device 101 are interconnected communicatively as shown in FIG. 1. These components are powered by, for example, a battery.

Processor 103 performs the processing operations used for the functioning of mobile device 101. Display processor 105 performs the operations used to generate displays on touchscreen 109. Touchscreen 109 displays graphics and other data for the user of the mobile device 101, and also allowed the user of mobile device 101 to interact with one or more elements within touchscreen 109. These elements include, for example, a keypad. Storage 111 stores data and programs used for the operation of mobile device 101. Communications module 113 handles communications between mobile device 101 and other devices and or networks.

Randomization subsystem 107 performs the function of randomly selecting values for one or more variables related to at least one of said one or more display parameters. Randomization subsystem 107 can be implemented in a variety of ways. In one embodiment, randomization subsystem 107 is implemented in hardware. In another embodiment, randomization subsystem 107 is implemented in software. In a further embodiment, randomization subsystem 107 is implemented using a combination of hardware and software. Randomization subsystem 107 performs the random selections detailed below using one or more probability distributions. Examples of probability distributions which are used are, for example, the uniform distribution and the Gaussian distribution.

FIG. 2 shows a keypad 203 displayed within touchscreen 109. In FIG. 2, touchscreen 109 has a width 207 in the horizontal or x-direction; and a height 205 in the vertical or y-direction. Keypad 203 has a width 214 in the x-direction and a height 209 in the y-direction. There is an x-direction gap 212 between the vertical edge of the touchscreen and the vertical edge of the keypad, such that keypad width 214 is less than touchscreen width 207. Similarly there is a y-direction gap 208 between the horizontal edge of the touchscreen and the horizontal edge of the keypad, such that keypad height 209 is less than touchscreen height 205.

In some embodiments, randomization subsystem 107 randomly selects only the location of the keypad relative to a corner of the touchscreen. Examples are shown below. In these embodiments, keypad width 214 and keypad height 209 are fixed.

The location of the bottom left corner of the keypad relative to the bottom left corner of touchscreen 109 is given by the variables of (x,y) co-ordinates (213,211). The range of possible values of the location x-co-ordinate 213 is calculated based on the touchscreen width 207 and the keypad width 214. Similarly, the range of possible values of the location y-co-ordinate 211 is calculated based on the touchscreen height 205 and the keypad height 209.

In some embodiments, these calculations take into account the need for gaps between the vertical edges of the touchscreen 109 and keypad 203; and between the horizontal edges of the touchscreen 109 and keypad 203. Examples are demonstrated below:

The maximum value of the location x-co-ordinate 213 is calculated based on the touchscreen width 207 and the keypad width 214. In some embodiments, this takes into account any x-direction gaps. For example, in one embodiment, the maximum value of the location x-co-ordinate 213 given by the difference between touchscreen width 207 and keypad width 214 and an x-direction gap 212 between the right edge of the touchscreen 109 and keypad 203. That is:

Maximum value of location x-co-ordinate 213=(touchscreen width 207)−(keypad width 214+x-direction gap 212)

While only one x-direction gap between the right edges of the touchscreen 109 and keypad 203 is shown in FIG. 2, one of skill in the art would know that this is one example embodiment. In another embodiment, there is a second x-direction gap between the left edges of the touchscreen 109 and keypad 203.

Similarly, the maximum value of the location y-co-ordinate 211 is calculated based on the touchscreen height 205 and the keypad height 209. In some embodiments, this takes into account any y-direction gaps. For example, in one embodiment, the maximum value of the location y-co-ordinate 211 given by the difference between touchscreen height 205 and keypad height 209 and a y-direction gap 208 between the upper edges of the touchscreen 109 and keypad 203. That is:

Maximum value of location y-co-ordinate 211=(touchscreen height 205)−(keypad height 209+y-direction gap 208)

While only one y-direction gap between the upper edges of the touchscreen 109 and keypad 203 is shown in FIG. 2, one of skill in the art would know that this is one example embodiment. In another embodiment, there is a second y-direction gap between the bottom edges of the touchscreen 109 and keypad 203.

Then, in the embodiment corresponding to a single x-direction gap, the location x-co-ordinate 213 is selected randomly from the range [0, (touchscreen width 207)−(keypad width 214+x-direction gap 212)]. Similarly, in the embodiment corresponding to a single y-direction gap, location y-co-ordinate 211 is selected randomly from the range [0, (touchscreen height 205)−(keypad height 209+y-direction gap 208)].

In the embodiment corresponding to two x-direction gaps, the location x-co-ordinate 213 is selected randomly from the range [x-direction gap 212, (touchscreen width 207)−(keypad width 214+x-direction gap 212)]. Similarly, in the embodiment corresponding to two y-direction gaps, location y-co-ordinate 211 is selected randomly from the range [y-direction gap 208, (touchscreen height 205)−(keypad height 209+y-direction gap 208)].

These variables are randomly selected by randomization subsystem 107 based on one or more probability distributions such as the uniform distribution or the Gaussian distribution as explained above.

In this way, the location of the keypad (213,211) is randomly distributed. Therefore the locations of each of the buttons are not fixed in time as well. This makes it difficult for an attacker to guess the coordinates of user interactions with keypad 203 on touchscreen 109.

In some embodiments, randomization subsystem 107 only randomly selects the size of the keypad, that is, only the variables of keypad width 214 and keypad height 209 are randomly selected. In some embodiments, the ranges of available keypad widths and keypad heights take into account any requirements for gaps between the keypad and touchscreen edges. Examples are demonstrated below for a case where there are two x-direction gaps and two y-direction gaps.

With reference to FIG. 2, in one embodiment, the keypad width 214 is randomly selected from the range [Xkeymin, (touchscreen width 207)−2×(x-direction gap 212)], where Xkeymin is the minimum length of the keyboard in the x-direction. The keypad height 209 is randomly selected from the range [Ykeymin, touchscreen height 205−2×(y-direction gap 208)], where Ykeymin is the minimum height of the keyboard in the y-direction. Then the location co-ordinates (213,211) are calculated taking into account the randomly selected touchscreen width and height.

Location x-coordinate 213=touchscreen width 207−keypad width 214

Location y-coordinate 211=touchscreen height 205−keypad height 209

In some embodiments, randomization subsystem 107 only randomly selects the size of the buttons in the keypad. That is, keypad width 214, keypad height 209, the location x-co-ordinate 213 and y-co-ordinate 211 are all fixed. At least one of the heights and widths of the buttons within the keypad are randomly selected.

This is demonstrated further below. FIG. 3 illustrates a further detailed description of keypad 203. Keypad 203 comprises columns 314-1, 314-2 and 314-3; and rows 309-1, 309-2, 309-3 and 309-4. In this example, each button within keypad 203 is referenced by [row, column] notation. For example, the button containing the number “1” is button [309-4, 314-1].

The width of columns 314-1, 314-2 and 314-3 are given by 324-1, 324-2 and 324-3 respectively. The height of rows 309-1, 309-2, 309-3 and 309-4 are given by 319-1, 319-2, 319-3 and 319-4 respectively. Then the width of button [309-4, 314-1] is 324-1 and the height of button [309-4, 314-1] is given by 319-4.

Embodiments to randomly select at least one of button widths and button heights of keypad 203 are then presented below.

In one embodiment, the row heights 319-1, 319-2, 319-3 and 319-4 are fixed, and the width of each column is randomly selected. With reference to FIG. 3B, in step 3B-01 randomization subsystem 107 randomly selects column width 324-1 from the range [XBmin, (keypad width 214)−2×XBmin], where XBmin is the minimum width of the button in the horizontal (x) direction.

In step 3B-02, column width 324-2 is randomly selected by randomization subsystem 107 from the range [XBmin, (keypad width 214)−(324-1+XBmin)].

In step 3B-03, column width 324-3 is then set to [keypad width 214−(column width 324-1+column width 324-2)].

In another embodiment, the column widths are fixed, and the heights of each row are randomly selected. With reference to FIG. 3C, in step 3C-01, row height 319-1 is randomly selected by randomization subsystem 107 from the range [YBmin, keypad height 209−3×YBmin], where YBmin is the minimum height of the button in the vertical (y) direction.

In step 3C-02, row height 319-2 is randomly selected by randomization subsystem 107 from the range [YBmin, keypad height 209−(row height 319-1+2×YBmin)].

In step 3C-03, row height 319-3 is randomly selected by randomization subsystem 107 from the range [YBmin, keypad height 209−(row height 319-1+row height 319-2+YBmin)].

In step 3C-04, row height 319-4 is then set to keypad height 209−(row height 319-1+row height 319-2+row height 319-3).

In yet another embodiment, both row heights and column widths are randomly selected. This is a combination of the steps in FIGS. 3B and 3C.

In one embodiment, this is performed in series. With reference to FIG. 3D, steps 3D-01 to 3D-03 are identical to steps 3B-01 to 3B-03 of FIG. 3B. Steps 3D-04 to 3D-07 are identical to steps 3C-01 to 3C-04 of FIG. 3C.

In another embodiment, this is performed in parallel as shown in FIG. 3E. In FIG. 3E branch 3E-08 comprises steps 3E-01 to 3E-03, which are identical to steps 3D-01 to 3D-03 of FIG. 3D. Branch 3E-09 comprises the steps 3E-04 to 3E-07, which are identical to steps 3D-04 to 3D-07 of FIG. 3D. The steps of branches 3E-08 and 3E-09 are performed in parallel by randomization subsystem 107 to improve processing speed.

In some embodiments, one or more positions of groups of buttons are randomly selected by randomization subsystem 107. Examples of such groups are the rows and columns on the keypad. By random selecting the positions of groups of buttons, at least some of the positional relationships within the group are still maintained. For example, when the position of a row of buttons is changed, the horizontal relationships among the buttons within the row are still maintained. This is likely to reduce the difficulty faced by the user when compared to the case of complete randomization of button layout, where both horizontal and vertical relationships may be completely changed.

As would be appreciated by one of skill in the art, in a keypad such as that shown in FIG. 3A, there are 4!=24 possible row arrangements and 3!=6 possible column arrangements. In one embodiment, one of these row arrangements or column arrangement are randomly selected. By doing so, it is possible to increase the difficulty faced by an attacker in determining the coordinates of touchscreen interactions by a user.

Another possibility is “rolling” up the rows by rollup parameter RP, which is an integer greater than or equal to 1. This involves moving each row up RP times and “wrapping around” when it reaches the top. An example is demonstrated below:

FIG. 4 shows the starting position for the keypad. The notation for the row references in FIG. 4 are 401-(row position). For example, the reference for row position 0 is denoted as 401-0; the reference for row position 1 is denoted as 401-1 and so on. The notation for the column references in FIG. 4 are 411-(column position). For example, the reference for column position 0 is denoted as 411-0, the reference for column position 1 is denoted as 411-1 and so on.

Initially

row 309-1 is in row position 0, referenced as 401-0;

row 309-2 is in row position 1, referenced as 401-1;

row 309-3 is in row position 2, referenced as 401-2;

row 309-4 is in row position 3, referenced as 401-3;

column 314-1 is in column position 0, referenced as 411-0;

column 314-2 is in column position 1, referenced as 411-1; and

column 314-3 is in column position 2, referenced as 411-2.

Then RP is randomly selected from a range [1, 3]. The new row position is determined by

New row position=(Starting row position+RP) (mod 4),

where mod denotes the integer modulo operation.

FIG. 5 shows an example where RP=1. In FIG. 5,

New row position of 309-1=(0+1)(mod 4)=1, referenced by 401-1;

New row position of 309-2=(1+1)(mod 4)=2, referenced by 401-2;

New row position of 309-3=(2+1)(mod 4)=3, referenced by 401-3; and

New row position of 309-4=(3+1)(mod 4)=0, referenced by 401-0.

A similar operation can be carried out for columns. This is denoted as “flipping” columns by flip parameter (FP) which is an integer greater than or equal to 1. Each column is moved rightwards FP times and “wrapped around” when it reaches the right edge.

FIG. 4 above shows the starting position for the keypad. FP is randomly selected from a range [1, 2]. The new column position is determined by:

New column position=(Starting column position+FP) (mod 3)

FIG. 6 shows an example where FP=1.

New column position of 314-1=(0+1)(mod 3)=1, referenced by 411-1;

New column position of 314-2=(1+1)(mod 3)=2, referenced by 411-2; and

New column position of 314-3=(2+1)(mod 3)=0, referenced by 411-0;

Another possibility is randomly “mirroring” the button layout. A left to right mirror image of the starting position keypad in FIG. 4 is given in FIG. 7A. As can be seen in FIG. 7A, column 314-1 changes position to column position 411-2 and column position 314-3 changes position to column position 411-0. Then randomization subsystem 107 makes a random selection from either the starting position or the horizontal mirrored position.

In other embodiments, a vertical mirroring is used as shown in FIG. 7B. In the vertical mirror image, the row positions of 309-1 and 309-4 in the starting position are interchanged, as are the row positions of 309-2 and 309-3. Then randomization subsystem 107 makes a random selection from either the starting position or the vertical mirrored position.

It is possible to randomly select two or more display parameters in combination. FIG. 8 illustrates one example of a random selection of a combination of location of the keypad relative to a corner; and size of the keypad. In step 801, keypad width 214 is selected randomly by randomization subsystem 107 from the range [Xkeymin, (touchscreen width 207−2×x-direction gap 212)]. Xkeymin represents a minimum width for the keypad.

In step 802, randomization subsystem 107 randomly selects keypad height 209 from the range [Ykeymin, (touchscreen height 205−2×y-direction gap 208)]. Ykeymin represents a minimum height for the keypad.

In step 803, randomization subsystem 107 randomly selects x-coordinate 213 from the range [0, (touchscreen width 207−keypad width 214)].

In step 804, randomization subsystem 107 randomly selects y-coordinate 211 from the range [0, (touchscreen height 205−keypad height 209)].

In some embodiments, sequences of random selections of combinations of display parameters are implemented. For example a sequence for a combination of randomization of location of keypad, size of keypad, size of buttons and positions of groups of buttons is shown in FIG. 9. In step 901, randomization subsystem 107 randomly selects a size of the keypad 203 as described above. In step 902, randomization subsystem 107 randomly selects a location of the keypad 203 using the process described above. In step 903, randomization subsystem 107 randomly selects the size of the buttons of keypad 203 as described above. In step 904, randomization subsystem 107 randomly selects positions of groups of buttons as described above.

It should be understood that the drawings and detailed description herein are to be regarded in an illustrative rather than a restrictive manner, and are not intended to be limiting to the particular forms and examples disclosed. On the contrary, included are any further modifications, changes, rearrangements, substitutions, alternatives, design choices, and embodiments apparent to those of ordinary skill in the art, without departing from the spirit and scope hereof, as defined by the following claims. Thus, it is intended that the following claims be interpreted to embrace all such further modifications, changes, rearrangements, substitutions, alternatives, design choices, and embodiments. 

What is claimed is:
 1. A system for randomization of one or more display parameters for a keypad displayed on a touchscreen of a mobile device, comprising: a randomization subsystem to randomly select one or more variables related to at least one of said one or more display parameters; said one or more display parameters including: a location of the keypad relative to an edge of said touchscreen; a size of said keypad; one or more sizes of one or more buttons within said keypad; and one or more positions of one or more groups of the one or more buttons within said keypad.
 2. The system of claim 1, wherein said randomization subsystem randomly selects one or more variables related to two of said one or more display parameters.
 3. The system of claim 1, wherein said one or more display parameters comprises a first display parameter and a second display parameter, and said randomization subsystem randomly selects one or more variables related to the first display parameter before randomly selecting one or more variables related to the second display parameter.
 4. The system of claim 1, wherein said one or more buttons comprise a first button and a second button; said randomization subsystem randomly selects a first size of said first button and a second size of said second button; and said first size is different from said second size.
 5. The system of claim 4, wherein said random selection of said first size comprises randomly selecting at least one of a first width of said first button and a first height of said first button.
 6. The system of claim 5, wherein said first width and said first height are different from each other.
 7. The system of claim 5, wherein said random selection of at least one of a first width and a first height is based on at least one of a first range of values and a second range of values; and wherein said first range of values comprises a first minimum value and said second range of values comprises a second minimum value.
 8. The system of claim 5, wherein said random selection of at least one of said first width and said first height is performed after said randomization subsystem randomly selects said size of said keypad.
 9. The system of claim 8, wherein said random selection of said second size comprises randomly selecting at least one of a second width of said second button and a second height of said second button; and said random selection of at least one of said second width and said second height is performed after said randomization subsystem performs said random selecting of at least one of said first width or said first height.
 10. The system of claim 8, wherein said random selection of at least one of said first width and said first height is performed after said randomization subsystem randomly selects said location of the keypad relative to said edge of said touchscreen.
 11. A method for randomization of one or more display parameters for a keypad displayed on a touchscreen of a mobile device, comprising: Providing a randomization subsystem to perform a random selection of one or more variables related to at least one of said one or more display parameters; said one or more display parameters including: a location of the keypad relative to an edge of said touchscreen; a size of said keypad; one or more sizes of one or more buttons within said keypad; and one or more positions of one or more groups of the one or more buttons within said keypad.
 12. The method of claim 11, further wherein said random selection comprises random selection of one or more variables related to two of said one or more display parameters.
 13. The method of claim 11, wherein said one or more display parameters comprises a first display parameter and a second display parameter, and said random selection further comprises performing a random selection of one or more variables related to the first display parameter before performing a random selection of one or more variables related to the second display parameter.
 14. The method of claim 11, wherein said one or more buttons comprise a first button and a second button; said random selection further comprises performing a random selection of a first size of said first button and a second size of said second button; and said first size is different from said second size.
 15. The method of claim 14, wherein said random selection of said first size comprises a random selection of at least one of a first width of said first button and a first height of said first button.
 16. The method of claim 15, wherein said first width and said first height are different from each other.
 17. The method of claim 15, wherein said random selection of at least one of a first width and a first height is based on at least one of a first range of values and a second range of values; and wherein said first range of values comprises a first minimum value and said second range of values comprises a second minimum value.
 18. The method of claim 15, wherein said random selection of at least one of said first width and said first height is performed after said random selection of said size of said keypad is performed.
 19. The method of claim 18, wherein said random selection of said second size comprises a random selection of at least one of a second width of said second button and a second height of said second button; and said random selection of at least one of said second width and said second height is performed after said randomization subsystem performs said random selection of at least one of said first width or said first height.
 20. The method of claim 18, wherein said random selection of at least one of said first width and said first height is performed after said randomization subsystem randomly selects said location of the keypad relative to said edge of said touchscreen. 